# 审批表单

审批表单主要以下几点:

  1. 表单权限配置
  2. 节点表单授权
  3. 流程表单TAB权限
  4. 流程配置多个表单实现数据拷贝
  5. 业务模型数据设置:5.1 表单初始化/保存脚本的编写,5.2 字段设置的取值类型
# 功能描述

用于流程审批和填单的表单,同时可设置某个节点的表单权限。

表单支持方式:1.在线表单,2.url表单

数据保存方式:

  1. 实例表: 表单的数据存放到BPM_FORM_INST表中。
  2. 业务表: 表单数据存储到生成都物理表中
  3. 两者:两者进行存储。
# 操作步骤

切换【审批表单】

单个节点如果需要绑定表单

配置业务模型:当需要使用到在线表单,就需要配置业务模型,业务模型支持一个或多个。

表单类型: 全局表单,开始表单,明细表单,节点表单

查找表单规则:

  1. 在启动流程时:先查找启动节点的开始表单,找不到再查找全局表单
  2. 在审批流程时:先查找节点设置的表单,找不到再查找全局表单。
  3. 在查看流程实例时:先查找配置的明细表单,找不到则找全局表单。

手机表单:当配置了手机表单时,就可以在移动端填单和审批。

# 表单权限配置

# 功能描述

在流程审批过程中,流程表单支持一个或多个,有的情况下,某个节点需要根据权限,显示审批人或发起人有权限的表单。

# 操作步骤

选择两个业务模型

在全局表单只配置一个表单

设置开始表单,也就是发起表单,这里配置两个表单

点击【添加】给表单设置权限,意思是在发起时,费用报销单所有人发起流程都会显示,而审批意见只有朱芸芸发起时才会显示

权限的介绍:

全部 :这个表单所有人都可见。

含审批人:这个表单之前批过的人可见。

含发起人:如果是流程发起 ,那么当前人可见这个表单,如果是审批,当前人就是发起人,这个表单可见。

用户:指的组织架构里的用户,如果当前登录人在这个选择的人员中,那么这个表单可见。

用户组:指的组织架构里的用户组,如果当前登录人属于授权的用户组,那么这个表单可见。

超管登录查看审批表单

使用朱芸芸登录

# 表单字段授权配置

选择某个节点 点击【添加】添加表单,点击【表单授权】进入字段权限页面,设置后点击【保存】 页面关闭后,再点击【确定】 再点击【保存】

# 节点表单授权

# 流程表单TAB权限

# 功能描述

tab权限指的当表单有tab的情况,我们可以在某个节点上设置tab的权限,即那些tab可以访问,那些tab不可以访问。

# 操作步骤

配置好表单后,点击红框按钮,当然表单需要有tab才能配置。

配置权限

这个权限配置说明可以参考:《流程表单TAB权限》

# 流程配置多个表单实现数据拷贝

# 功能描述

有些情况下在流程配置多个表单的情况下,我们需要实现将一个表单的数据copy到另外一个表单,这时我们可以使用如下方式进行实现。

# 在设计表单中添加如下脚本
var copyConfig=[{from:{form:"cp1",field:"name"},to:
{form:"cp2",field:"name"},single:true,nodeId:"N1"},{from:
{form:"cp1",field:"user"},to:{form:"cp2",field:"user"},single:false,nodeId:"N2"}];在表单设计页面添加如下脚本

copyConfig 这时配置的变量名称,这个必须固定

{from:{form:"cp1",field:"name"},to:{form:"cp2",field:"name"},single:true,nodeId:"N1"}

这个是表示copy一个字段:

from:表示从哪里进行拷贝 to:表示拷贝的目标字段 form:表示拷贝的表单 field:表示字段 single:表示字段是否是单值字段 (像用户,用户组都是双值字段) nodeId: 这个表示在某个节点上执行拷贝,如果不配置,会忽略节点,在所有的节点都有效。这个节点可以配置多个,使用逗号分隔。

# 效果

在编辑时,在表单cp1 中添加脚本如下:

这里是在第二个节点拷贝 user控件的内容。

在发起时设置一个表单。

填写值

在审批时 第一个表单的值

第二个表单的情况,这里将用户字段做了拷贝。

# 业务模型数据设置

# 功能描述

在流程执行的过程中,我们会有些时候希望在某个节点,对某个表单字段进行赋值,或者在表单保存时,对表单字段进行赋值。

比如:我们执行到经理审批节点,希望系统能够带出经理的姓名出来,不用用户手工填写。下面就介绍一下系统能实现功能点。

# 操作步骤

切换到【审批表单】 点击箭头标注的图标,进入节点模型数据设置界面

这里需要注意的是:这个配置的查找规则和查询表单的规则不一致,只获取配置节点的配置。

这里有两种设置分别为:

  1. 初始化设定:这个指的是表单显示时,可以对表单字段设置值。

在初始化一栏,选择某个字段,点击【设置】

根据业务需求设置取值类型,设置值,点击【确定】

取值类型分别为:

  1. 常量:在系统中,经常会用到比如当前登录人的ID,登录人姓名等等数据,这些我们在系统中定义为常量。

  2. 自定义开发常量

  3. 脚本:脚本指指的是用户通过开发脚本获取字段的值,在脚本中用户可以通过[字段名]的方式获取字段的值。

比如表单有个 name的字段。脚本就可以编写为 :return "[name]";

需要注意的是,这个name 是这个字段的同一行数据,要么是主表,要么是子表中同一行的数据。

  1. 固定值:这个就没什么好说,这个字段为填写的值。

  2. 审批意见: 我们说一个场景,我们在设计表单的时候,经常有需要在表单上,有需要某某审批的字样。系统支持 我们设计一个字段,这个字段实际是整个表的一部分,我们通过

对这个字段设置审批意见,那他的意思就是,我们在审批时填写的意见,就会存入到这个字段。

因此需要注意的是:这个字段是主表字段,这个字段在保存时设置为审批意见,应为只有在保存时,会把填写的意见存入这个字段。

效果:

  1. 保存设定:这个指的是在表单数据保存时,数据优先保存设定的值。

选择某个节点,在保存设置一栏,给电话字段设置了一个固定值,点击【设置】,根据业务需求设置取值类型,设置值,点击【确定】

启动页面电话不填写

N2节点审批完,走的N3节点,电话字段赋予了设置的固定值

# 表单初始化/保存脚本的编写

# 功能描述

在系统中,一般可以对字段进行设置,比如常量,固定值,脚本,审批意见等,这样设置比较容易,但是业务场景不合适。

比如一次性需要初始化多个字段,比如我们根据用户Id获取 用户的,姓名,地址,邮件,电话,那我们就需要编写4个脚本,可能需要访问4次数据库。

这个效率有有些低,因此我们可以通过脚本,直接更改表单脚本。因此我们需要知道脚本改怎么写,上下文的表单数据是怎样的。

# 实现方法

代码执行参考

com.redxun.bpm.core.manager.impl.DataSettingHandler;

上下文变量:

boDefId:当前操作那个 BO定义
jsonData:表单JSON数据 结构示例{xm:"",nl:""}

我们编写一个脚本案例来说明问题:

jsonData.sx="无限极项目";
jsonData.dh="18456789087";

配置在开始节点点击初始化设置

启动流程,通过脚本赋予的值可在表单上呈现